#######EXERCICIO 4#######
getwd()
setwd("C:/Users/LouiseAlissa/Desktop/R_curso/Tut_4")

### EXERCICIO 4.1 RIOS
data(rivers)
rivers

#Proporo total dos rios que tem extenso menor que a mdia
#Primeiro buscar quais rios so
riosmenores <- rivers[rivers<mean(rivers)]
#Depois fazer a proporo
prop.mm <-length(riosmenores) / length(rivers)

#Valor do quantil de 75% dos dados
quantil.75 <- quantile(rivers, probs =0.75)

#Criar o array (vetor de 3 dim)
media.r <- mean(rivers)
media.t.r <- mean(rivers, trim= 0.25)
mediana.r <- median(rivers)

medias <- array(c(media.r, media.t.r, mediana.r))
class(medias)


### EXERCICIO 4.2 CERVEJAS

cervejas <-c("chope","lata","garrafa","chope","garrafa", "garrafa","lata","lata","nenhuma","lata","garrafa","garrafa", "garrafa","lata","lata","lata","garrafa","lata","chope","nenhuma", "garrafa","garrafa","garrafa","chope","garrafa","garrafa","chope","garrafa","lata","lata")
table(cervejas)

##1
# grfico de barras e dotplot (fiz com todos os default, tem muitas possibilidades de edio, checar depois)
par(mfrow=c(1,2))
barplot(table(cervejas))
dotchart(table(cervejas))
par(mfrow=c(1,1))

##2 
# Se usssemos os grficos da forma como so gerados (com  default para as cores e preenchimento),
# o dotchart tem maior razo dado/tinta.


### EXERCICIO 4.3 CAIXETAIS
caixeta <- read.csv("caixeta.csv", as.is=T)

##1 Histograma do DAP dos fustes dos caixetais, ou seja, usar cada linha, pois as linhas representam os fustes
# Primeiro, calcular o DAP (dimetro), pois temos o CAP (circunferncia)
# C = pi*D
# Ai vou salvar esses dados no data frame, a forma abaixo insere dap dentro de caixeta.  bom que no precisa criar ooooutro data frame
caixeta$dap <- caixeta$cap / pi
# Decidi fazer o histograma salientando os valores de frequncias, acho melhor pra visualizar 
hist(caixeta$dap, xlab= "DAP", ylab= "Frequncia", main="Histograma de DAP dos fustes dos caixetais",labels=TRUE)

##2 Histograma da altura das rvores para os diferentes locais (caixetais)
# Primeiro corrigir a coluna de altura, pra que tenha apenas uma altura por rvore de cada local
# Vou pedir pro R me mostrar apenas as linhas em que mostre o primeiro dos fustes, pois ai s vai conter um valor de altura
caixeta.altura.corrigida <- caixeta[caixeta$fuste==1,]  
head(caixeta.altura.corrigida)

#Agora fazer os histogramas 
# Pra fazer os 3 histogramas juntos pode ser pelo pacote lattice
library(lattice)
histogram(~caixeta.altura.corrigida$h|caixeta.altura.corrigida$local, type="count", layout = c(3,1)) #(tive que especificar count, pois o eixo y estava saindo em porcentagem)
# Pra fazer os trs histogramas apenas com hist
par(mfrow= c(1,3))
hist(caixeta.altura.corrigida$dap[caixeta.altura.corrigida$local=="chauas"], main="chauas", xlab="Altura das rvores")
hist(caixeta.altura.corrigida$dap[caixeta.altura.corrigida$local=="jureia"], main="jureia", xlab="Altura das rvores")
hist(caixeta.altura.corrigida$dap[caixeta.altura.corrigida$local=="retiro"], main="retiro", xlab="Altura das rvores")
par(mfrow= c(1,1))

##3 H diferena entre as distribuies das alturas entre os locais?
#Olhando apenas para os histogramas vemos que em Chauas e Jureia possuem distribuies semelhantes e h rvores que passam de h=200. 
#Inclusive, h valores de altura bem extremos em Chauas (>400) e em Retiro (~700).
#Em Chauas h muitas rvores com altura entre 75 e 100, em Jureia grande parte dos valores esto entre 100 e 150.
#Em retiro no foram observados valores maiores que 200 e a mdia parece estar descolaca pra esquerda, j que grande parte dos valores de altura esto entre 50 e 100.
#Pra ser menos subjetiva eu acho interessante olhar graficamente e tambm fazer o summarry para cada localidade.


### EXERCICIO 4.4 EUCALIPTOS
e.grandis <- read.table(file="egrandis.csv", header=T, sep=";", dec=".", as.is=T)
head(e.grandis)


##1 Boxplot DAP em funo de regio e rotao. ATENO: ENUNCIADO CONFUSO!!!
# Outra observao: na coluna rvore os nmeros tambm se repetiam, mas de forma ainda mais confusa do que no objeto caixeta
# Usei a coluna dap toda, no discriminei nada
# Se a pergunta era dap~regiao e dap~rotao
par(mfrow=c(1,2))
boxplot(e.grandis$dap ~ e.grandis$regiao, main="DAP~regio")
boxplot(e.grandis$dap ~ e.grandis$rotacao, main="DAP~rotao")
par(mfrow=c(1,1))

# Se a pergunta era dap ~ regio|rotao (no faz muito sentido pra mim, mas...)
coplot(e.grandis$dap ~ e.grandis$rotacao | e.grandis$regiao) # no consigo interpretar isso, nem entendo a varivel rotao xyplot 
xyplot(e.grandis$dap ~ e.grandis$rotacao |e.grandis$regiao , data=e.grandis)

# Analisando por regio:
#Vejo que em todas as regies possuem valores outliers, mas a regio Bofete possue muitos desses valores.
#As medianas so bastante prximas, sendo  Itatinga<Bofete<Botucatu=Salto
#Analisando por rotao (no sei o que seria isso):
#Rotao 1 um possui valores, num geral, maiores que Rotao 2


##2 Avaliar a normalidade da altura das arvores com quantil-quantil
altura.arvore <- (e.grandis$ht)
hist(altura.arvore, breaks=16)

qqnorm(altura.arvore)
qqline(altura.arvore)
# Quando plotamos o grfico da pela funo qqnorm e a linha da pela funo qqline vemos que
# os quantis empricos e tericos se distanciam no incio e no fina da linha. H grande sobreposio
# de valores no meio do plot.

### EXERCICIO 4.5 MAIS CAIXETAIS :O
caixeta

#ATENO: eu preciso do DAP das rvores, mas eu tenho o CAP dos fustes

# Vou calcular o DAP a partir do CAP e inserir nesse data frame
# C = 2*pi*r, portanto D = C / pi
caixeta$dap <- caixeta$cap / pi
# Agora eu tenho o DAP pra cada fuste, mas eu preciso do DAP por rvore
# Pra conseguir calcular isso primeiro eu vou calcular a rea basal pra cada fuste e inserir isso na tabela
# A= pi.(r)^2
caixeta$area.basal <- pi * (caixeta$dap/2)^2 
# Agora com a rea basal de cada fuste eu posso ter uma rea basal total da rvore
caixeta.area.arvore <- aggregate(caixeta$area.basal, by=list(arvore=caixeta$arvore,local=caixeta$local,h=caixeta$h ,especie=caixeta$especie), FUN= sum)
colnames(caixeta.area.arvore) <- c("arvore","local","h","especie","area.basal.total") # por algum motivo a rea.basal.total estaav como apenas x
# Agora nesse novo data frame eu vou inserir a coluna com o DAP de cada arvore, que ser calculado pela rea basal total de cada arvore
# DAP = (sqrt(A/pi)) *2
caixeta.area.arvore$dap.arvore <- (sqrt(caixeta.area.arvore$area.basal.total/pi))*2

# FINALMENTEEEEE TENHO O DAP DAS ARVORES E SUAS ALTURAS NUM MESMO DATA FRAME 

# Agora preciso separar apenas as linhas que possuem informaes sobre Tabebuia cassinoides
# Primeiro vou criar o objeto com a listas das espcies
lista.especie <- unique(caixeta.area.arvore$especie) 
lista.especie
# vi que a Tabebuia  posio 42
# Agora digo pro R olhar pra lista de espcie e procurar tudo que  Tabebuia e me dar todas as linhas em que tem tabebuia, ai salvo isso num objeto, pra poder fazer plot desse objeto
tabebuia <- caixeta.area.arvore[caixeta.area.arvore$especie== lista.especie[42], ]
tabebuia

##1 Analisar dap-h por local apenas para tabebuia com plot
par(mfrow=c(1,3))
plot(tabebuia$h ~ tabebuia$dap, data=tabebuia, subset=tabebuia$local=="chauas", main="chauas")
plot(tabebuia$h ~ tabebuia$dap, data=tabebuia, subset=tabebuia$local=="jureia", main="jureia")
plot(tabebuia$h ~ tabebuia$dap, data=tabebuia, subset=tabebuia$local=="retiro", main="retiro")
par(mfrow=c(1,1))

#ou
coplot(tabebuia$h ~ tabebuia$dap | tabebuia$local, data= tabebuia)

##2 Colocar scatter.smoth no plot 
par(mfrow=c(1,3))
scatter.smooth(tabebuia$h ~ tabebuia$dap, data=tabebuia, subset=tabebuia$local=="chauas")
scatter.smooth(tabebuia$h ~ tabebuia$dap, data=tabebuia, subset=tabebuia$local=="jureia", main="jureia")
scatter.smooth (tabebuia$h ~ tabebuia$dap, data=tabebuia, subset=tabebuia$local=="retiro", main="retiro")
par(mfrow=c(1,1))

#ou
coplot(tabebuia$h ~ tabebuia$dap | tabebuia$local, data= tabebuia, panel=panel.smooth)

##3 Analisar dap-h por local apenas para tabebuia com funo do pacote lattice
xyplot(tabebuia$h ~ tabebuia$dap | tabebuia$local, data= tabebuia)

